Various business entities, such as companies, store information electronically in furtherance of their business needs. These companies may have extensive databases of information that include customer tables, supplier tables, employee tables, and so on. The structure of the database system (schema) and the data object format (DOF) of each database may be customized to help meet the business needs of the company. For example, an automotive manufacturer may organize information about its customers in a way that is very different from the way that an online bookstore may organize information about its customers. Even within a single company, that company may use many different application programs that employ very different schemas and DOFs. For example, a customer relationship management application program may use a DOF that is very different from the DOF used by an accounting program. The use of customized DOFs by a company and by applications within the company has the advantage that it allows information to be modeled in a way that is appropriate for the business needs of the company. Unfortunately, because of this diversity in the DOFs, it is not easy for the company to share its information with other companies or for applications to share their information.
The inter-exchange of information between applications of different business entities or even between different applications of the same business entity can be problematic due to the variation in DOFs between applications.
For example, a business entity may use a proprietary billing system. If the business entity decides to integrate a number of related applications from each of several software vendors, a translation mechanism may have to be created and implemented between the underlying billing system and each related application. This is because each application from a different software vendor may have a unique, or substantially different, DOF. Moreover, full integration of the multiple applications may require creation and implementation of a translation mechanism between each of the related applications as well.
A change in the underlying billing system may necessitate recreating and implementing such translation mechanisms.
Various attempts have been made to define standard data models so that information can be more easily shared between companies and applications. For example, the Open Applications Group has designed a standard data model that can be used by companies and applications when sharing information. A problem with such data models is that they did not provide effective ways to model relationships between various parties, such as a person or a company. In addition, if a company or an application developer wants to customize the standard data model, the customized data model may not be compatible with future upgrades of the standard data model. It would be desirable to have a data model that would more effectively model relationships and facilitate the upgrading of customizations of the data model.